參與iT邦JavaScript中忍比賽,獲得一本JS武林祕級“JavaScript設計模式”,因而閉門修練月餘,今神功既成故節錄三十片段,以饗邦友。
再次強調JS沒有class,而這反而增加了更多彈性,然而JS依然有建構式函式。
來看一個例子:
//方法一:使用實字
var car = {foo: "bar"};
//使用內建建構式
var car = new Object();
car.foo = "bar";
很明顯的是方法一的作法比較優,因為程式碼較短,而且一目了然。方法一另一個優點是它不需要作用域的判斷,因為它不需要從呼叫Object()時的作用域,一路向外查詢整個作用域錬,直到找到全域的Object建構式。
如果傳遞給Object()建構式的參數是動態的,只有執行期才能知道的時候,那麼不確定性相更形增加,因為我們實不知程式在運行時所產生的物件是字串,數字或甚至是function等,徒增加編程的困擾。
所以結論就是:
不要使用 new Object();
應該使用較簡單,而且更可靠的物件實字替代之。(亦即方法一)
JS基本功粉重要,此節為七小段之第二段,咱先進廣告,明天回來...
(待)